Overlay of input control to identify and restrain draft content from streaming

ABSTRACT

A system determines whether to restrain collection of data entered into an input control by generating an overlay input field for capturing data entered by a user in response to determining that the collection of data is to be restrained. The data may be edited by the user, via the overlay input field, prior to the user submitting the data to the input control. The system submits the data captured in the overlay input field to the input control. The editing performed by the user within the overlay input field restrains collection of data by input controls that auto stream data as the data is entered into the input control.

BACKGROUND

Many applications, particularly those related to social media, have theability to capture input as a user enters it, even if the user deletesthe input without submitting. The user may self-censor the input for avariety of reasons, but applications that auto stream data negate theuser's efforts. The data collected by applications that auto stream maybe stored and viewed by others based on the policies, privacyagreements, etc., associated with those applications. The user may notbe aware when applications auto stream inputted data. Thus, it would behelpful if the user were able to identify when an application autostreams data. It would also be helpful if the user were able to restrainthe inputted content from auto streaming.

SUMMARY

According to one embodiment of the present invention, in a method fordetermining whether to restrain collection of data entered into an inputcontrol, the method generates an overlay input field for capturing dataentered by a user in response to determining that the collection of datais to be restrained. The data may be edited by the user, via the overlayinput field, prior to the user submitting the data to the input control.The method receives notification from the user that the editing iscomplete, and submits the data captured in the overlay input field tothe input control. The editing performed by the user within the overlayinput field restrains collection of data by input controls that autostream data as the data is entered into the input control.

In one aspect of embodiments disclosed herein, when the method generatesthe overlay input field for capturing the data entered by the user, themethod determines, by monitoring network communications, whether theinput control auto streams data as the data is entered into the inputcontrol.

In one aspect of embodiments disclosed herein, when the method generatesthe overlay input field for capturing the data entered by the user, themethod creates a network policy, associated with a network, that isapplied when the data is entered into the input control. The networkpolicy specifies whether the overlay input field is required whencommunicating with the network.

In one aspect of embodiments disclosed herein, when the method createsthe network policy, the method determines whether the network is atrusted network.

In one aspect of embodiments disclosed herein, when the method generatesthe overlay input field for capturing the data entered by the user, themethod detects that the user has accessed the input control. The methodthen applies a content policy to inputted content to determine whetherto restrain collection of data.

In one aspect of embodiments disclosed herein, when the method appliesthe content policy to the inputted content to determine whether torestrain collection of data, the method detects whether at least one ofthe inputted content and a recipient of the inputted content is trusted.If it is trusted, the method determines that restraining the collectionof data is not required.

In one aspect of embodiments disclosed herein, when the method detectswhether at least one of the inputted content and the recipient of theinputted content is trusted, the method transmits a portion of thecontent to determine whether the inputted content and/or the recipientof the inputted content is trusted.

In one aspect of embodiments disclosed herein, when the method generatesthe overlay input field for capturing the data entered by the user, themethod renders a notification indicating that the overlay input fieldhas been generated. The notification comprises at least one of a visualnotification and an audio notification.

In one aspect of embodiments disclosed herein, when the method submitsthe data captured in the overlay input field to the input control, themethod creates a buffer in which to capture inputted content. The methodthen applies a buffer policy to the inputted content to optimizeperformance of system.

System and computer program products corresponding to theabove-summarized methods are also described and claimed herein.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an embodiment of a system for determining whether torestrain collection of data entered into an input control, according toembodiments disclosed herein.

FIG. 2 illustrates an example input control, according to embodimentsdisclosed herein.

FIG. 3 illustrates an example input control with an overlay input field,according to embodiments disclosed herein.

FIG. 4 is a flowchart illustrating an embodiment of a method fordetermining whether to restrain collection of data entered into an inputcontrol, according to embodiments disclosed herein.

DETAILED DESCRIPTION

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Smalltalk, C++ or the like, andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

FIG. 1 illustrates a system for determining whether to restraincollection of data entered into an input control, according toembodiments of the present invention. The computer system 100 isoperationally coupled to a processor or processing units 106, a memory101, and a bus 109 that couples various system components, including thememory 101 to the processor 106. The bus 109 represents one or more ofany of several types of bus structure, including a memory bus or memorycontroller, a peripheral bus, an accelerated graphics port, and aprocessor or local bus using any of a variety of bus architectures. Thememory 101 may include computer readable media in the form of volatilememory, such as random access memory (RAM) 102 or cache memory 103, ornon-volatile storage media 104. The memory 101 may include at least oneprogram product having a set of at least one program code module 105that are configured to carry out the functions of embodiment of thepresent invention when executed by the processor 106. The computersystem 100 may also communicate with one or more external devices 111,such as a display 110, via I/O interfaces 107. The computer system 100may communicate with one or more networks via network adapter 108. Thecomputer system 100 may communicate with one or more databases 112 vianetwork adapter 108.

FIG. 2 illustrates an example input control 150, according toembodiments disclosed herein. The input control 150 resides, forexample, within a social media application. In this example embodiment,the user begins to enter an update into the input control 150.

FIG. 3 illustrates an example input control 150 with an overlay inputfield 125, according to embodiments disclosed herein. The methoddetermines whether to restrain collection of data entered into the inputcontrol 150. In this example embodiment, the method restrains thecollection of data by providing an overlay input field 125 to captureinput entered by the user into the input control 150. In this exampleembodiment, the overlay input field 125 is a visual notification thatoutlines (i.e., wraps a border around) the perimeter of the inputcontrol 150. The visual notification may be in any color and/or in anyformat.

FIG. 4 illustrates an embodiment of a method for determining whether torestrain collection of data entered into an input control 150, accordingto embodiments disclosed herein. At 200, the method, via the computingprocessor 106, generates an overlay input field 125 for capturing dataentered by a user in response to the method determining that thecollection of data is to be restrained. The method determines when theoverlay field is needed, and, in response, provides the overlay field.The data may be edited by the user, via the overlay input field 125,prior to the user submitting the data to the input control 150. Thecollection of data to be restrained refers to the collecting of datathat would otherwise be auto streamed if the overlay field were notpresent. The input control 150 may pass data to any type of applicationand/or network. The method notifies the user when the overlay inputfield 125 is being used, and the overlay input field 125 prevents thedata entered into the input control 150 from being auto streamed untilthe user is ready to submit the data. The action of auto streamingcollects data as the user is entering it into the input field, even ifthe user edits the data prior to submitting the data to the input field.The purpose of the overlay field is to restrain the auto streaming toallow the user to finalize and/or edit their thoughts before submittingthe data to the input field. Restraining indicates the auto streaming isprevented until the user submits the data to the input field. Thus,privacy is maintained where it may not otherwise exist.

At 201, the method receives notification from the user that the editingis complete. The user may provide this notification in a variety ofways, for example, such as selecting a key that submits the data enteredin the input control 150 to the application and/or the network.

At 202, the method submits the data captured in the overlay input field125 to the input control 150. The editing performed by the user withinthe overlay input field 125 restrains collection of data by inputcontrols that auto stream data as the data is entered into the inputcontrol 150. In an example embodiment, when the method generates theoverlay input field 125, the method creates a buffer in which to collectdata entered by the user. The data may be edited by the user, via theoverlay input field 125, prior to the user submitting the data to theinput control 150. The purpose of the overlay field is to prevent autostreaming (when auto streaming occurs) prior to the user submitting thedata to the input field. To the user, it appears that the user isentering data into the input control 150 itself. The data entered intothe overlay input field 125 remains in the buffer until the user submitsthe data to the input control 150. Then, the data is transferred fromthe buffer to the input control 150. In other words, when the methodreceives notification from the user that the editing is complete, themethod submits the data captured in the overlay input field 125 to theinput control 150 of the application. The overlay input field 125prevents the inputted data from being auto streamed until the methodsubmits the data captured in the overlay input field 125.

In an example embodiment when the method generates the overlay inputfield 125 for capturing the data entered by the user, the methoddetermines, by monitoring network communications, whether the inputcontrol 150 auto streams data as the data is entered into the inputcontrol 150. The method identifies whether the input control 150 autostreams data as that data is entered (into the input control 150) in avariety of ways. In one example embodiment, the method monitors networkcommunications to determine if the input control 150 auto streams data.The method may push test data through the input control 150, and checkif that test data is passed on to the network. If the test data ispassed on to the network, the method determines that the input control150 auto streams data, and a overlay input field 125 is requiredwhenever a user accesses that input control 150. The method may monitornetwork connections by using active monitoring, as described above(i.e., injecting test data into the network, and monitoring that data),or passive monitoring, where the method observes the traffic thatcurrently exists on the network.

In an example embodiment, when the method generates the overlay inputfield 125 for capturing the data entered by the user, the method createsa network policy that is applied when the data is entered into the inputcontrol 150. The network policy is associated with the network. Thenetwork policy specifies whether the overlay input field 125 is requiredwhen communicating with the network. As noted above, the method maymonitor network connections to determine if the input control 150 autostreams data. Based on that determination, the method creates a networkpolicy that is applied when a user interacts with that network. Forexample, a user may access a search engine to begin a search. If themethod has previously identified the search engine as auto streamingdata, the method applies the overlay input field 125 to an input control150 contained within the search engine web page when the user accessesthat search engine. If the method has previously determined that anapplication does not auto stream data, then when the method applies thenetwork policy, the method determines that the overlay input field 125is not required. In another example embodiment, the method may create anetwork policy when an application requests that a user grant permissionfor access while using an application, for example, a smart phoneapplication.

In an example embodiment, when the method creates the network policy,the method determines whether the network is a trusted network. If themethod determines that the network is a trusted network, the method maydetermine the overlay input field 125 is not required Likewise, if themethod determines that the network is not a trusted network, the methodmay use a variety of methods to determine whether the overlay inputfield 125 is required.

In an example embodiment, when the method generates the overlay inputfield 125 for capturing the data entered by the user, the method detectsthat the user has accessed the input control 150, and applies a contentpolicy to the inputted content to determine whether to restraincollection of data. When a user loads an application or initiates asession, the method identifies the input controls that are available.The input control 150 may be any type of input control 150 (i.e., inputfield, checkbox, radio button, etc.) that accepts any type of input. Theapplication may be any type of online form, collaborative editingsession, etc. When the method detects that the user has accessed aninput control 150, the method applies a content policy to the contententered by the user to determine whether to restrain the collection ofdata. In an example embodiment, a user may enter confidential companyinformation into a search engine to determine, for example, ifcompetitors are working on similar projects. The method applies acontent policy to the information entered by the user, and determineswhether that data should be restrained. The content policy may leveragesemantic analysis. If the method determines that the data should berestrained, the method generates an overlay input field 125 for thatinput control 150. The method may also alert the user that theinformation the user has entered may be confidential, and the user maynot want to enter that data into the search engine. The method may alsoapply a content policy to determine if the content entered by the useris a draft or submission (for example, as in the case of documentediting applications). The method may also apply different policies ifthe content comprises text versus if the content comprises images.

In an example embodiment, when the method applies the content policy tothe inputted content to determine whether to restrain collection ofdata, the method detects whether at least one of the inputted contentand a recipient of the inputted content is trusted. If the inputtedcontent and/or the recipient are trusted, then the method determinesthat restraining the collection of data is not required. For example,the method may apply a content policy to the contents of a chat sessionwith a trusted recipient, or to an email sent to a trusted recipient.When the method determines that at least one of the inputted content orthe recipient are trusted, the method determines that restraining thecollection of data is not required. In another example embodiment, themethod may determine that an application and/or network are trusted, orthat application an/or network trusts the user (and therefore, theapplication and/or network is trusted). The user may also specify that aparticular application and/or network are trusted.

In an example embodiment, when the method is detecting whether at leastone of the inputted content and the recipient of the inputted contentare trusted, the method transmits a portion of the content to determinewhether the inputted content and/or the recipient of the inputtedcontent are trusted. For example, the method may transmit a portion ofan email address of the recipient, or a hash tag to determine whetherthe inputted content and/or the recipient of the inputted content aretrusted.

In an example embodiment, when the method generates the overlay inputfield 125 for capturing the data entered by the user, the method rendersa notification indicating that the overlay input field 125 has beengenerated. The notification may be at least one of a visual notificationand an audio notification. FIG. 3 illustrates an example embodiment of avisual notification for the overlay input field 125. The overlay inputfield 125 may be in any color or any format that alerts the user to thepresence of the overlay input field 125.

In an example embodiment, when the method submits the data captured inthe overlay input field 125 to the input control 150, the method createsa buffer in which to capture inputted content. The method then applies abuffer policy to the inputted content to optimize performance of system.The buffer policy, for example, may buffer the content and notify theuser to submit the content if the content is too long to optimize thesystem performance. The buffer policy may also buffer multiple shortcontent together to submit multiple content at once. The method maybalance the size of the inputted content (i.e., too long or too short)to optimize performance of the system. For example, in situations withmultiple round trips of edited content, the buffer policy may reduce thenumber of round trips, again, to optimize the performance of the system.

The descriptions of the various embodiments of the present invention hasbeen presented for purposes of illustration, but are not intended to beexhaustive or limited to the embodiments disclosed. Many modificationsand variations will be apparent to those of ordinary skill in the artwithout departing from the scope and spirit of the describedembodiments. The terminology used herein was chosen to best explain theprinciples of the embodiments, the practical application or technicalimprovement over technologies found in the marketplace, or to enableothers of ordinary skill in the art to understand the embodimentsdisclosed herein.

What is claimed is:
 1. A method of determining whether to restraincollection of data entered into an input control, the method comprising:generating an overlay input field for capturing data entered by a userin response to determining that the collection of data is to berestrained, wherein the data may be edited by the user, via the overlayinput field, prior to the user submitting the data to the input control;and submitting the data captured in the overlay input field to the inputcontrol, wherein the editing performed by the user within the overlayinput field restrains collection of data by input controls that autostream data as the data is entered into the input control.
 2. The methodof claim 1 wherein generating the overlay input field for capturing thedata entered by the user comprises: determining, by monitoring networkcommunications, whether the input control auto streams data as the datais entered into the input control.
 3. The method of claim 1 whereingenerating the overlay input field for capturing the data entered by theuser comprises: creating a network policy, associated with a network,that is applied when the data is entered into the input control, thenetwork policy specifying whether the overlay input field is requiredwhen communicating with the network.
 4. The method of claim 3 whereincreating the network policy comprises: determining whether the networkis a trusted network.
 5. The method of claim 1 wherein generating theoverlay input field for capturing the data entered by the usercomprises: detecting that the user has accessed the input control; andapplying a content policy to inputted content to determine whether torestrain collection of data.
 6. The method of claim 5 wherein applyingthe content policy to the inputted content to determine whether torestrain collection of data comprises: detecting whether at least one ofthe inputted content and a recipient of the inputted content is trusted;and if trusted, determining that restraining the collection of data isnot required.
 7. The method of claim 6 wherein detecting whether the atleast one of the inputted content and the recipient of the inputtedcontent is trusted comprises: transmitting a portion of the content todetermine whether the at least one of the inputted content and therecipient of the inputted content is trusted.
 8. The method of claim 1wherein generating the overlay input field for capturing the dataentered by the user comprises: rendering a notification indicating thatthe overlay input field has been generated, wherein the notificationcomprises at least one of a visual notification and an audionotification.
 9. The method of claim 1 wherein submitting the datacaptured in the overlay input field to the input control comprises:creating a buffer in which to capture inputted content; and applying abuffer policy to the inputted content to optimize performance of system.